package br.com.aquinoevasconcelos.control;

import java.util.ArrayList;
import java.util.List;

import br.com.aquinoevasconcelos.modelos.Arquivo;
import br.com.aquinoevasconcelos.repositorio.IRepositorioArquivo;
import br.com.aquinoevasconcelos.repositorio.IRepositorioCliente;
import br.com.aquinoevasconcelos.repositorio.RepositorioArquivo;
import br.com.aquinoevasconcelos.repositorio.RepositorioCliente;
import br.com.aquinoevasconcelos.user.UsuarioCliente;
import br.com.aquinoevasconcelos.util.Validacao;

/**
 * @author Paulo Roberto
 * @email paulolima2008@hotmail.com
 * @version 1.0 @ Propriedade da Techcode
 */

public class ControladorArquivo {

	private IRepositorioArquivo arquivos;
	
	// pegar dados de usuarioCliente do banco relacionamento 
	private IRepositorioCliente cliente;
	
	
	private UsuarioCliente usuCliente = new UsuarioCliente();

	// construtor da classe
	public ControladorArquivo(IRepositorioArquivo arquivo) {
		this.arquivos = arquivo;
	}

	// -------------------------------------------------------------------------
	public void inserirArquivo(Arquivo arquivo) {
		
		// inserir data hora no arquivo
		arquivo.setDataHora(new Validacao().eventoDataHora());
		
		ArrayList<UsuarioCliente> usuClienteBanco = new ArrayList<UsuarioCliente>();
		cliente  = new RepositorioCliente();
		
		System.out.println("id usuario: "+arquivo.getCliente().getId());
		
		usuCliente = null;
		
		
		
		usuCliente =  cliente.pesquisaCliente("FROM usuario WHERE id ="+arquivo.getCliente().getId()+" AND identificacao ='cliente'").get(0);
		
		System.out.println(usuCliente.getCnae());
		System.out.println(usuCliente.getNome());
		
		//System.out.println(usuCliente.getCnae());
		//System.out.println(usuCliente.getNome());
		
		
		arquivo.setCliente(usuCliente);
		cliente.atualizarCliente(usuCliente);
		
		arquivos.inserirArquivo(arquivo);
	}

	// -------------------------------------------------------------------------
	public void atualizarArquivo(Arquivo arquivo) {
		arquivos.atualizarArquivo(arquivo);
	}

	// -------------------------------------------------------------------------
	public void removerArquivo(Arquivo arquivo) {
		arquivos.removerArquivo(arquivo);
	}

	// -------------------------------------------------------------------------
	public List<Arquivo> pesquisaArquivo(String query) {
		return arquivos.pesquisaArquivo(query);
	}

	// -------------------------------------------------------------------------
	public List<Arquivo> listaArquivo() {
		return arquivos.listaArquivo();
	}
	// -------------------------------------------------------------------------
	
	public List<Arquivo> listaArquivoCliente(long  idCliente) {
		
		arquivos = new RepositorioArquivo();
		
		ArrayList<Arquivo> arquivosCliente = (ArrayList<Arquivo>) arquivos.pesquisaArquivo("FROM arquivo WHERE cliente_id = '"+idCliente+"'");
		
		return arquivosCliente;
	}
	// -------------------------------------------------------------------------
}
